(TODO:写経)Nested CV for algorithm selection in scikit-learn
scikit-learn 0.17.1と0.18の2つのコード
MNIST
4つのアルゴリズムを試している
StratifedKFoldでinner_cvとouter_cvを作成
split(X, y)が呼ばれるとXとyを分割
CV iteratorとしてcv引数に渡している
GridSearchCVやcross_val_scoreの中で呼ばれている
X_train, y_train(訓練セット全数)をouter_cvと一緒にcross_val_scoreに渡す
外側の交差検証(5分割)
inner_cvを指定済みのGridSearchCVにtrain foldsのデータが渡る
内側の交差検証(2分割)
アルゴリズムが選択できたあとで、全訓練データでmodel selectionしている
内側のGridSearchCVに全訓練データを渡す
cross_val_scoreでは全訓練データで訓練したestimatorは得られない
あくまで指標(accuracy)の値だけ
開発者がアルゴリズムを選択するのに使う情報
notebookだと書きやすそう(スクリプトは書きにくい)